#include <stdio.h>

// 函数：交换两个整数的值
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// 函数：交换最小值与第一个数，最大值与最后一个数
void swapMinMax(int arr[], int size) {
    int *min = arr, *max = arr;
    int *first = arr, *last = arr + size - 1;

    // 找出最小值和最大值的指针
    for (int i = 1; i < size; i++) {
        if (*(arr + i) < *min) {
            min = arr + i; // 更新最小值指针
        }
        if (*(arr + i) > *max) {
            max = arr + i; // 更新最大值指针
        }
    }

    // 交换最小值和第一个数
    swap(first, min);

    // 交换最大值和最后一个数
    swap(last, max);
}

int main() {
    int arr[10];

    // 输入10个整数
    printf("input 10 number:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &arr[i]);
    }

    // 调用函数交换最小值和最大值
    swapMinMax(arr, 10);

    // 输出交换后的数组
    printf("after swap:\n");
    for (int i = 0; i < 10; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
